package com.dvt.faceScan.httpUntil;
import android.util.Log;
import com.dvt.faceScan.widget.Config;

import org.json.JSONObject;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;
import java.util.Map;

/**
 * 获取权限token
 * @return 返回示例：
 * {
 * "access_token": "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567",
 * "expires_in": 2592000
 * }
 */

public class RequestToken {
    private void token(){
        new Thread(new Runnable() {
            @Override
            public void run() {
                String authHost = "https://aip.baidubce.com/oauth/2.0/token?";
                String getAccessTokenUrl = authHost
                        // 1. grant_type为固定参数
                        + "grant_type=client_credentials"
                        // 2. 官网获取的 API Key
                        + "&client_id=" + Config.ApiKey
                        // 3. 官网获取的 Secret Key
                        + "&client_secret=" + Config.SecretKey;

                try{
                    URL realUrl = new URL(getAccessTokenUrl);
                    Log.d("TokenToken",""+getAccessTokenUrl);
                    // 打开和URL之间的连接
                    HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection();
                    connection.setRequestMethod("GET");
                    connection.connect();
                    // 获取所有响应头字段
                    Map<String, List<String>> map = connection.getHeaderFields();
                    // 遍历所有的响应头字段
                    for (String key : map.keySet()) {
                        System.err.println(key + "--->" + map.get(key));
                    }
                    // 定义 BufferedReader输入流来读取URL的响应
                    BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
                    String result = "";
                    String line;
                    while ((line = in.readLine()) != null) {
                        result += line;
                    }
                    /**
                     * 返回结果示例
                     */
                    Log.d("result",""+result);
                    JSONObject jsonObject = new JSONObject(result);
                    String access_token = jsonObject.getString("access_token");
                }catch (Exception e){
                    Log.d("获取token","获取token失败");
                    e.printStackTrace(System.err);
                }
            }
        });
    }
}


